package com.lile.regex;

import java.util.Scanner;

public class RegexCheck {

	public static void main(String[] args) {
		QQ();
		regexCheck("[1-9][0-9]{4,14}", "QQ号");

		/*
		 * 需求：校验电话号码
		 * 
		 * 分析： 电话号码的组成 13812345678 13999998888 13123456789 18912345678
		 * 18811112222
		 */
		String regex = "1[38][0-9]{9}";
		regexCheck(regex, "手机号");

		/*
		 * 校验邮箱
		 * 
		 * liuyi@163.com linqingxia@126.com 123456@qq.com zhangsan123@sina.cn
		 * zhang456@sina.com.cn fqy@itcast.cn
		 */
		// String emailRegex =
		// "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\.[a-z]{2,3})+";
		String emailRegex = "\\w+@\\w{2,8}(\\.[a-z]{2,3})+";
		regexCheck(emailRegex, "邮箱");
	}

	/*
	 * 正则表达式：符合一定规则的字符串。
	 * 
	 * 练习： 校验qq号码. 1:要求必须是5-15位数字 2:0不能开头
	 */
	public static void QQ() {
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入你的qq号码：");
		String qq = sc.nextLine();

		boolean flag1 = checkQQ1(qq);
		System.out.println("flag1:" + flag1);
	}

	public static boolean checkQQ1(String qq) {
		boolean flag = true;

		// 校验长度
		if (qq.length() >= 5 && qq.length() <= 15) {
			// 0不能开头
			if (!qq.startsWith("0")) {
				char[] chs = qq.toCharArray();
				for (int i = 0; i < chs.length; i++) {
					char ch = chs[i];
					// 是否都是数字
					if (!Character.isDigit(ch)) {
						flag = false;
						break;
					}
				}
			} else {
				flag = false;
			}
		} else {
			flag = false;
		}

		return flag;
	}

	public static void regexCheck(String regex, String tip) {

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入" + tip + ":");
		String text = sc.nextLine();

		boolean flag = text.matches(regex);
		System.out.println("是否是" + tip + ": " + (flag ? "是" : "否"));
	}
}
